
#pragma once

#include <cstdint>

#ifdef __AVR_ARCH__

    #include <avr/pgmspace.h>

    #define _OLED__BASIC__USE__PROGMEM

namespace oled_basic {

    namespace hide {

        inline uint8_t read_pgm_byte(const uint8_t *ptr) {
            return pgm_read_byte(ptr);
        }

    }  // namespace _hide

}  // namespace oled_basic

#else

    #ifndef PROGMEM
        #define PROGMEM
    #endif

namespace oled_basic {

    namespace hide {

        inline uint8_t read_pgm_byte(const uint8_t *ptr) {
            return *ptr;
        }

    }  // namespace _hide

}  // namespace oled_basic

#endif